﻿using BLevy.Entidad;
using BLevy.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmSociosMensajeMasivo : Form
    {
        public frmSociosMensajeMasivo()
        {
            InitializeComponent();
        }

        private void IniciarControles()
        {
            txtMensaje.Text = string.Empty;
            txtIdPeriodo.Text = string.Empty;
            txtPeriodo.Text = string.Empty;
            txtPeriodo.Enabled = false;

            txtIdPeriodo.Visible = false;

            this.ActiveControl = txtMensaje;
        }

        private Boolean ValidarForm()
        {
            bool resultado = true;
            error.Clear();

            if(string.IsNullOrEmpty(txtPeriodo.Text))
            {
                resultado = false;
                error.SetError(txtMensaje, "Debe generar el próximo periodo.");
                return resultado;
            }

            if(string.IsNullOrEmpty(txtMensaje.Text))
            {
                resultado = false;
                error.SetError(txtMensaje, "Debe completar el campo Mensaje.");
                return resultado;
            }

            return resultado;
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

       

        private void LimpiarControles()
        {
            txtMensaje.Text = string.Empty;
            txtIdPeriodo.Text = string.Empty;
            txtPeriodo.Text = string.Empty;
        }

        private void RegistrarMensaje()
        {
            try
            {
                PeriodoMensaje periodo_mensaje = new PeriodoMensaje();
                periodo_mensaje.periodo_id = Convert.ToInt32(txtIdPeriodo.Text);
                periodo_mensaje.mensaje = txtMensaje.Text;

                int resultado = Periodos.RegistrarMensaje(periodo_mensaje);
                if (resultado > 0)
                {
                    MessageBox.Show("Los datos se registraron correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LimpiarControles();
                }
                else
                {
                    MessageBox.Show("Ocurrio un error al registrar los datos. Intente Nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void GetProximoPeriodo()
        {
            error.Clear();
            try
            {
                Periodo periodo = Periodos.FindLast();

                txtPeriodo.Text = periodo.periodo.ToString("MM/yyyy");
                txtIdPeriodo.Text = periodo.id.ToString();

                //verifico que no tenga asignado un mensaje el periodo
                int verificar_mensaje = Periodos.VerificarMensajePeriodo(periodo.id);

                //si lo tiene lo muestro
                if (verificar_mensaje != 0)
                {
                    txtMensaje.Text = Periodos.FindMensajeMasivoPeriodo(periodo.id);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void frmSociosMensajeMasivo_Load(object sender, EventArgs e)
        {
            IniciarControles();
            GetProximoPeriodo();
        }



        private void btnGuardarr_Click(object sender, EventArgs e)
        {
            if (ValidarForm() == true)
            {
                RegistrarMensaje();
            }
        }
    }
}
